23

» WarCraft 3 / Нестандартный ландшафт

Похожие вопросы:

ответ
приходиться угадывать
так не поймешь, чего у тебя там не работает. Опиши ПОДРОБНО чего сделать не так, что она не работает. раньше работала?
Скидывай скрин ошибки, карту. В папке варкрафт есть папка "Errors" там текстовик нужно найти.
предположение
Пробовал выключить или временно удалить все триггеры? если без триггеров нормально работает - вывод?
похоже автор какую-нибудь карту открыл, отредактировал ландшафт. Она там мб, к примеру, на cjass написано. попробуй xgm.guru/p/wc3/178775 Если ошибка будет на jngp, там есть в папке jngp есть папка "logs" тоже ошибки хранит
Еще может быть нужно включить UMS. Даже, если без триггеров не сохраняет, возможно какие-нибудь за какие-нибудь ограничения (кол-во деревьев, размер карты и прочее).
ответ
Все работает. Нужно только правильно настроить. Изменить тайлсет. Сохранить. Потом сохранить карту. Выключить WE. Включить WE, загрузить карту. В теории на карте должно быть много разных тайлсетов со своими настройками в зависимости от того как вы настроили.
ответ
да, возможно, очень даже
ответ
~8gabriel8:
Насколько помню, на картах большого размера могут быть глюки с размещением порчи по краям. Но в целом чего-то серьёзного, как и указал Bergi_Bear, нет.

23

» WarCraft 3 / Анимация для Декораций

Похожие вопросы:

ответ
Если заменить модель дерева на модель травы, с анимамцией пригинания при смерти. Убрать колизию, то может получится.
Вот примерная наработка на деревьях.
ответ
26 камешков п отдельности забивать.
циклы+массивы
читай статьи
и все более менее нормальные карты сделаны людьми которые прочли все статьи
та же дота например(хотя она не особо нормальная)
ответ
В редакторе моделей для Вара необходимо создавать точки крепления огня (кости). Они называются sprite.
Цитирую фразу из статьи: Точки крепления и Событийные объекты.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.
ответ
easypeasy, Такое нужно убирать в вар3ME
ответ
Taurenus,
  1. Идем сюда, читаем внимательно, возвращаемся, когда поймем содержание, в противном случае циклим прочтение, пока не поймем.
  2. Идем сюда, читаем внимательно, возвращаемся, когда поймем содержание, в противном случае циклим прочтение, пока не поймем.
  3. Как правило, те, кому нужен 1 скилл, потом придут за 2-3-4-5-6-7...100000, ибо их подход к работе / творчеству исходно выстроен на паразитировании.
Если совсем упрямый, то раздел вопросов не создан для философских вопросов, вам либо в блог, либо в социальные сети.

23

» WarCraft 3 / Все что за пределами карты

Похожие вопросы:

ответ
Друга зачем? Нинада, так толку не будет...
Просто используешь Inject main (vjass) или Define (Cjass) чтобы убрать 1 только строчку из main
//***************************************************************************
//*
//*  Map Configuration
//*
//***************************************************************************

//***************************************************************************
//*
//*  Main Initialization
//*
//***************************************************************************

//===========================================================================
function main takes nothing returns nothing
    call SetCameraBounds(- 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), - 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM))
    call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")
    call NewSoundEnvironment("Default")
    call SetAmbientDaySound("SunkenRuinsDay")
    call SetAmbientNightSound("SunkenRuinsNight")
    call SetMapMusic("Music", true, 0)
    call InitBlizzard() // вот и все, удалим и не будет бж объектов.


    call InitGlobals()
    call InitCustomTriggers()
    call RunInitializationTriggers()

endfunction
Совсем забыл, функция main генерируется при сохранении карты в редакторе
Без cjass или vjass придется выколупывать war3map.j (код карты) файл из карты и править ручками в блокнотике, геморойно до безобразия, за то ненужен c\vjass и его знания.
ответ
//! nocjass
ответ
Вершины все правильно прикреплены к костям?
ответ
quq_CCCP, тогда ну нафиг
это полноценный реверс инженеринг уже будет
Asaaaaaar, короче это потребует кучу времени и никто тут этим заниматься скорее всего не будет
думаю даже за платно сложно будет найти того кто согласится убить кучу времени на это
ответ
Я решил проблему, используя обработчики событий BlzTriggerRegisterPlayerKeyEvent и EVENT_PLAYER_MOUSE_DOWN
При нажатии правой кнопки мыши проверяется наличие живого героя и селекция юнитов, если в ней нет юнитов которыми игрок может управлять (или вообще никто не выбран) то юнит моментально отправляется приказом "move" в точку, на которую кликнул игрок и сразу выбирается.
При нажатии клавиши герой просто выбирается.

23

» WarCraft 3 / Стандартные модели

Похожие вопросы:

ответ
Алексей777, легко. Заходим в редактор объектов, ищем пункт "Файл модели" (в этом случае - "units\creeps\NightElfBattleship\NightElfBattleship") и выковыриваем его из mpq.
ответ
war3.mpq
war3x.mpq
доставать mpq editor
на сайте есть
Даже более пошаговая инструкция:
  1. Открываешь редактор варкрафта
  2. Смотришь в редакторе объектов путь к модели (это надо включить там показать значения переменных или что-то там, тут пусть кто-то уточнит, если нужно, я наизусть не помню, хотя постоянно переключаю, как-то так Units\Creeps\StoneGolem\StoneGolem.mdx)
  3. Закрываешь редактор (а то mpq не откроется)
  4. xgm.guru/p/xm/ladikmpq скачиваешь это, если еще не, распаковываешь
  5. открываешь war3.mpq, ищешь там по пути модель в соответствующих папках
  6. если ее нет, открываешь war3x.mpq и ищешь там
  7. нажимаешь Export
  8. выбираешь куда вынуть
  9. подтверждаешь
все, открываешь папку, куда оно того и там модель и текстура
текстуру можно фотошопить, а модель мдлвисить как душа пожелает
/
инструкция может быть чуть не точной, т. к. сочинялась на ходу
ответ
У меня сейчас нет доступа к компу, но недавно записывал видео для другого чела. Мб тебе тоже подойдёт

23

» WarCraft 3 / Модели с импортируемыми текстурами

Похожие вопросы:

ответ
Вот правильные пути:
baal.blp
Baal.mdx
Baal_portrait.mdx
То есть просто названия файлов должны быть путями.
ответ
Заходишь в WorldEditor
  1. Открываешь менеджер импорта.
  2. Импортируешь модель.
  3. Кликаешь по импортированному файлу два раза, ставишь галочку использовать нестандартный путь, стираешь war3mapImported\, закрываешь импортированный файл.
  4. Сохраняешь карту.
  5. Открываешь редактор объектов, ищешь нужную тебе боевую единицу или создаешь нестандартную.
  6. Ищешь у юнита Графика Файл мод..
  7. Нажимаешь импорт.
  8. Все.
Ели и это не понятно, то вот наглядное пособие: www.youtube.com/watch?v=o_FtWeeskac
ответ
Эм.. чел, а ты случайно не трогал карты путей в ро? Я как-то поставил туда текстуру путей и такая же проблема была, ы)

п.с. вид -> пути: суша

23

» WarCraft 3 / замена StringHash()

Похожие вопросы:

ответ
похоже более всего на мусор, попадающий в память откуда-то извне. Обычно пропущенная строка автокаста такой фигней страдает. Нельзя точно сказать, нужно менять поля и смотреть. К счастью, описания можно менять и локально, не перепаковывая карту

23

» WarCraft 3 / Отлов определенных атак

Похожие вопросы:

ответ
~8gabriel8:
Ещё можешь наносить вместо отравления иной бафф, а отравлять даммиком. По этому баффу сможешь различать урон от автоатаки и способности.

23

» WarCraft 3 / Как сделать это в редакторе карт варкрафт 3?

Похожие вопросы:

ответ
Сделать триггер для проверки кода, ну и организовать систему для его считывания и поверь это очень много всего, придется продумать.
Если коротко ты цифрами будешь (условно) сохранять своего героя, каждый набор цифр отвечает за какой то параметр героя, силу, ловкость, уровень, предметы и так далее, когда я говорю что это очень много всего придется продумать так и есть, тебе придется создать базу данных, для всех чисел и все проверять при введении команды, для защиты можно сверять суму чисел и проверять героя за которого играет игрок.
Мой тебе совет, не поленись и вбей в поиск "сделать команду save для карты варкрафт 3", на твое удивление там будет то что тебе нужно, уже на второй ссылке.
ответ
Отловить событие смерти юнита и создать на его месте эффект крови .
Clamp, этот вариант не оставляет после себя трупа
ответ
Avazik, вот тут описано как ссылка

23

» WarCraft 3 / Проблемы с Кампанией

Принятый ответ
Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.
ответ
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду.
Кампания - это пак карт.
ответ
~8gabriel8:
Решение в том, чтобы не копировать одну и ту же модель ЗЭ, а чего-то там внутри самой модели переименовывать.
ответ
Поставил 1.26. Вступительное видео заработало. Звуков диалогов в начале 1 миссии нет, но похоже они здесь и не планировались. В самом журнале строчек не добавляется. Нашёл их в том, что вызывается в левой части меню.

23

» WarCraft 3 / loop

Похожие вопросы:

ответ
Ярг Восьмой:
nvc123, У него там отсутствует CreateGroup()
А ещё она в заголовке globals не null'ась

Я о group G
ответ
функцию Trig_BlockA_Func005Func011Func001C() убери нафиг
как и другие функции используемые для ифов и подобной херни
а вообще про это написано во всех статьях про jass
мб стоит прочитать сразу несколько статей а затем задавать сюда вопросы?

правила сайта
смотри пункт 10.3
ответ
Хештаблицей будет быстрее:
nvc123:
Extremator:
а что насчёт хештаблиц? Скорость их работы?
всё крайне печально
лол что?
скорость работы глобалок в 1,5 раза быстрее чем у хештейблов
т.е. 10 обращений к хештейблам выполняется столько же времени сколько и 15 к глобалкам
если каждую секунду не выполняется более 1000 обращений к хештейблу то не юзать хэштейблы ради оптимизации та ещё тупость
Да, и для какой цели там сверху стоит "exitwhen true"?
ответ
Ну если много юнитов создавать, особенно тяжелых юнитов вроде героев, то будет пролаг, т.к юниты весьма тяжелые обьекты по меркам движка.
Первый раз созавая юнитов движок будет подгружать все их данные из слк таблиц, что тоже вызывает пролаг.

23

» WarCraft 3 / Переменная force

Похожие вопросы:

ответ
Отключайте по одной, и смотрите какая глючит.
Возможно, что он пытается атаковать кого-либо, но местная пачка крипов сбивает атаку, сообщая что на базу напали, ну или что-то подобное.
ответ
Даже так не хочет работать. Я добавляю игрока и сразу же вызываю функцию.

нельзя делать call DestroyForce
или call RemoveRect после этого ты их ни разу не сможешь юзнуть даже указав новую переменную
Как видишь выше, дело не в этом. Да и не уничтожал я их.

Может она просто не работает в массиве?...

Закрою вопрос и перефразирую для понимания.
ответ
Прилагаю карту

Надо было указать размер массива. Странно, во всех переменных стоит 1 и все работает. Наверное переменная занимает больше памяти, чем другие.

23

» WarCraft 3 / Проекты варкрафта

Похожие вопросы:

ответ
Полагаю, что подобную тему стоит создать в блоге, а не в разделе вопросов и ответов.
ответ
Итого чтобы делать карту на Warcraft 3 в 2018 оптимальна сборка:
  1. Версия Warcraft — 1.26a
  2. патчи, плагины — JNGP + AdicHelper + попробовать MemHack+RenderEdge
  3. Утилиты: ButtonManager для иконок, фотошоп для новых иконок и текстур
  4. Сообщества для тестов — в гарене в Russia RPG Room 01
  5. Ресурсы искать на XGM, Hiveworkshop
  6. Ответы на вопросы искать на XGM + Hiveworkshop + смотреть стримы павла
Ответ на вопрос на канале Павла с 18-й минуты
ответ
Несовместимость с железом... У меня новая дотка айкапа к примеру напрочь зависает...
ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.
ответ
Аналогично были вылеты, когда я работал с картами в кампании.

23

» WarCraft 3 / Увеличение магического урона

Похожие вопросы:

ответ
Ловишь весь урон
@
Наносишь от источников дополнительный
ответ
Конечно можно, но триггерно. В варкравте нету дефолтных аур которые бы влияли на магический урон.
Раз в 2 сек. проверяешь есть ли у юнитов на карте бафф ауры пустышки (чародейской ауры или ауры ускорения, основа не важна). Если есть, но у юнита нету спеллбука с скиллом благословление элуный - который повышает урон от магии на n %, то вручаем запрещённый спеллбук этому юниту, если у юнита нету баффа ауры но есть спеллбук удаляем спеллбук. Все просто.

23

» WarCraft 3 / Высота земли

Похожие вопросы:

ответ
Анимация - изменить высоту юнита (юнит, высота, скорость)
как-то так... или в Спецэффекты
ответ
8gabriel8, земноводный но все равно дергает верх и низ если вода глубогая. Изврашеным способом не заметно как дергает.
ответ
Насколько помню нет, (хотя - невидимые платформы, но это тот еще костыль).
ответ
CRASHmaster:
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
к сожалению, не решена. Чем выше юнит забирается на холм, тем выше камера становится над юнитом.
ответ
XGM Bot:
Похожие вопросы:

ответ
pas logique:
Гигамон- Спасибо!
В триггерах тип действий "Камера". Если конкретно расстояние до цели надо поменять, то "Камера - Установить Поле Камеры (Время)" ("Камера - Set Camera Field (Timed)").
ответ
Вероятнее всего, ты повышаешь камеру выше скайбокса.
Вероятные решения проблемы:
а) Уменьшить самих юнитов и стилизовать ланд под маленькие модели.
б) Вставить нестандартный скайбокс с огромным размером.
(я бы выбрал первый вариант, потому что он круче)
ответ
CRASHmaster:
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
к сожалению, не решена. Чем выше юнит забирается на холм, тем выше камера становится над юнитом.
ответ
Ну так берем и делаем, в чем проблема то? Элементарный триггер же? Взяли подрстроку из введенного в чат сообщения и настроили камеру.


23

» WarCraft 3 / Дессинхрон

Похожие вопросы:

ответ
если тебе звук нужен только для обладателя героя, то ты используешь вместо current camera view
position of hero[GetPlayerId(GetLocalPlayer())]
где hero - массив героев, индекс это номер игрока начиная с нуля
то есть hero[0] красный геро, hero[1] синий и т.д.
тогда это вернет позицию локального героя, а если герой не существует то центр карты
ответ
  1. Перезаход обязателем, ибо другие "некачественые" в плане кода карты, вызывают десинхи в вашей игре
  2. Наличие читов может вызывать десинхи, много раз замечал, когда в гарене хоставал, люди сами говорили, что в моей карте переставало выкидывать, только после того как они МХ (мапхак) отключат
  3. Высокая нагрузка на триггер инициализации, частая проблема огромных проектов, рекомендуется сделать отложенную инициализацию, например предзагрузку способностей на пролаг первых 10 секунд игры
Выводы: если все будут писать идельный код и играть на последнем патче, то не будут портить игру другим этими вылетами
Я изначально знал, что мой код плохой (использование мемхака (не путать с мапхакам)), и чтобы другим не портить жизнь закрывал вакрафт после завершения игры

23

» WarCraft 3 / Ошибка в способности

Похожие вопросы:

ответ
проверь настройки A01P, возможно, там кривые данные выше 3-го уровня
ответ
Kanteu, у тебя в описаниях стоит код AUdc, тебе нужно его заменить на равкод твоей способности. Чтобы его узнать, выдели способность и нажми Ctrl+D. Перед двоеточием будет равкод способности.
ответ
МодификаторПал я так понимаю число, а не юнит...
local unit u
local real r
Это конкретно по ошибке... а вообще - не надо смотреть видео от этого человека, он тебя плохому научит... правда. А другим потом придётся тебя переучивать, если ты сам это дело не забросишь
ответ
краш пропал сам собой, после смены варика. КАЧАЙТЕ ДЕФОЛТНЫЙ ВАРИК БЕЗ миксов и всякой дряни!

23

» WarCraft 3 / Поворот эффекта

Похожие вопросы:

ответ
Всё, разобрался, вопрос снимаю)
ответ
В модел эдиторе перенеси нужную кость в начало координат и в ключевых фреймах пропиши одинаковые координаты для этой кости. Вот и проверишь.
ответ
Ах, я понял чего ты хочешь конкретно сейчас. Чтобы модель смотрела в камеру, словно на экране выбора персонажа? В таком случае ситуация немного упрощается.
Нам больше не нужно хранить текущую матрицу поворота эффекта, ведь мы не производим ее вращение, вместо этого мы высчитывает всю необходимую ориентацию из положения камеры и самого эффекта. Подход, в целом, остается прежним, но для поиска осей ориентации мы теперь будем использовать некоторый вспомогательный вектор, чье направление совпадает с направлением глобальной оси Z, и путем векторного произведения этого вспомогательного вектора на вектор оси X эффекта (получаемый как и прежде p2 - p1) мы получаем вектор ориентации эффекта Y, а векторное произведение X на Y нам даст ось Z эффекта.
Весь процесс можно разжевать на множество абзацев, но делать этого нет смысла. Я проще скину твою карту с новым вариантом.
Тем не менее, я вижу некоторое непонимание темы и потому считаю должным указать на некоторые ошибки в твоем прошлом коде
Код
    private function RotationMatrixToEuler takes MATRIX3 R returns VECTOR3
    
        local real x
        local real y
        local real z
        local real sy = SquareRoot(R.m11 * R.m11  +  R.m21 * R.m21)
     
        local boolean singular = sy < .000001 or sy == 0 // If
     
        if not singular then
        
            set x = Atan2(R.m32 , R.m33)
            set y = Atan2(-R.m31, sy)
            set z = Atan2(R.m21, R.m11)
        
        else
        
            set x = Atan2(-R.m23, R.m22)
            set y = Atan2(-R.m31, sy)
            set z = 0
            
        endif
        
        return VECTOR3.New_1(x, y, z)
    
    endfunction
Я не понимаю, как работает эта функция. В моем понимании, преобразование матрицы поворота в углы Эйлера происходит за счет обратного преобразования. То есть, чтобы преобразовать матрицу в Эйлер, необходимо знать как преобразуется Эйлер в матрицу, поскольку это обратные друг другу процессы. В новом примере я ее переписал.
Код
        set rotation.m11 = X.x
        set rotation.m12 = X.y
        set rotation.m13 = X.z
        
        set rotation.m21 = Y.x
        set rotation.m22 = Y.y
        set rotation.m23 = Y.z
        
        set rotation.m31 = Z.x
        set rotation.m32 = Z.y
        set rotation.m33 = Z.z
Здесь идет неверное назначение параметров матрицы. Дело в том, что матрица записывается следующим образом (из readme библиотеки Math)
m11 m12 m13
m21 m22 m23
m31 m32 m33
При этом, оси записываются слева направо, столбиками, то есть , ось X здесь, это m11, m21 и m31. Следовательно верной записью будет
Код
        set rotation.m11 = X.x
        set rotation.m21 = X.y
        set rotation.m31 = X.z
        
        set rotation.m12 = Y.x
        set rotation.m22 = Y.y
        set rotation.m32 = Y.z
        
        set rotation.m13 = Z.x
        set rotation.m23 = Z.y
        set rotation.m33 = Z.z
И самая ложная строка
        set rotation = MATRIX3.New_0()
Это создаст нулевую матрицу, то есть матрицу, все значения которой - нули. Базовая же матрица поворота, это единичная матрица, то есть матрица, чья главная диагональ состоит из единиц, а все остальное - нули.
Но это просто заметки, в текущей версии этих участков кода больше нет.
ответ
Посмотри вот тут: xgm.guru/p/clamp/clamp-physics
Решал точно такую-же проблему, успешно
ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

23

» IrInA Host Bot / Патч

Похожие вопросы:

ответ
Патч на большие карты лежит с коннектором
ответ
IrIna Host Bot не осуществляет поддержку по картам. Пишите автору карты
ответ
Ты про game.dll? Его можно скачать, поискав в интернете. Или под этим сообщением.